#include <cstdint>
#include <vector>

using namespace std;

class Solution {
private:
    void binary_search(int left, int right, vector<int>& numbers, int& ans) {
        if (left >= right || numbers[left] < numbers[right]) {
            ans = min(ans, numbers[left]);
            return;
        }
        int middle = (left + right) / 2;
        binary_search(left, middle, numbers, ans);
        binary_search(middle + 1, right, numbers, ans);
    }
public:
    int minArray(vector<int>& numbers) {
        if (numbers.empty()) {
            return 0;
        }
        int ans = INT32_MAX;
        binary_search(0, numbers.size() - 1, numbers, ans);
        return ans;
    }
};